#!/bin/bash

# 项目根目录 (需要与启动脚本中的一致)
PROJECT_ROOT="$(pwd)"


# PID 文件路径 (需要与启动脚本中的一致)
PID_FILE="$PROJECT_ROOT/gunicorn.pid"

# 检查 PID 文件是否存在
if [ ! -f "$PID_FILE" ]; then
  echo "错误: Gunicorn 进程 PID 文件 '$PID_FILE' 不存在，可能服务没有运行。"
  exit 1
fi

# 从 PID 文件中读取进程 ID
PID=$(cat "$PID_FILE")

# 检查进程是否存在
if kill -0 "$PID" > /dev/null 2>&1; then
  echo "正在停止 Gunicorn 进程 (PID: $PID)..."
  kill "$PID"
  # 可选: 等待一段时间确保进程已停止
  sleep 2
  # 再次检查进程是否已停止
  if kill -0 "$PID" > /dev/null 2>&1; then
    echo "警告: Gunicorn 进程 (PID: $PID) 没有正常停止，尝试强制停止..."
    kill -9 "$PID"
  else
    echo "Gunicorn 进程 (PID: $PID) 已成功停止。"
  fi
else
  echo "警告: PID '$PID' 对应的进程不存在，可能服务已经停止或 PID 文件已过期。"
fi

# 删除 PID 文件
if [ -f "$PID_FILE" ]; then
  rm "$PID_FILE"
  echo "已删除 PID 文件 '$PID_FILE'."
fi